package no.awi.wpd.model;

import no.awi.wpd.unit.model.Profile;

import static no.awi.wpd.unit.model.TroopType.MONSTER;
import static no.awi.wpd.unit.model.TroopType.MONSTROUS_CAVALRY;
import static no.awi.wpd.unit.model.TroopType.MONSTROUS_INFANTRY;

public class ProfileMother {

    public static Profile dryads() {
        return new Profile().ws(4).at(2).st(4).to(4).in(6).ld(8).wardsave(5).name("Dryads");
    }

    public static Profile whiteLion() {
        return new Profile().ws(5).st(6).in(5).ld(8).armoursave(5).setAsf().name("White lions");
    }

    public static Profile skullcrusher() {
        return new Profile().ws(5).st(5).in(5).to(4).wo(3).at(3).ld(8).armoursave(1).setFrenzy()
                .type(MONSTROUS_CAVALRY).name("Skullcrushers");
    }

    public static Profile juggernaught() {
        return new Profile().ws(5).st(5).in(2).at(3).setFrenzy().name("Juggernaughts");
    }

    public static Profile ogre() {
        return new Profile().st(4).to(4).in(2).wo(3).at(3).armoursave(5).type(MONSTROUS_INFANTRY).name("Ogres");
    }

    public static Profile irongut() {
        return ogre().st(6).setAsl().name("Ironguts");
    }

    public static Profile mournfangRider() {
        return ogre().armoursave(2).type(MONSTROUS_CAVALRY).name("Mournfang riders");
    }

    public static Profile mournfang() {
        return new Profile().st(5).in(2).at(4).name("Mournfang");
    }

    public static Profile bloodthirster() {
        return new Profile().ws(10).st(6).to(6).wo(5).in(9).at(7).armoursave(3).wardsave(5).setRerollToHit()
	    .type(MONSTER).name("Bloodthirster");
    }
}
